package com.kotlin.flong.coroutines

import kotlinx.coroutines.*


/**
 * @Author:liangjl
 * @Date: 2020/7/7-16:16
 * @Eamil:jilongliang@sina.com
 * @Description:
 * 协程取消失效解决
 */
fun main() = runBlocking {
    val job = GlobalScope.launch {
        (1..10).forEach {
            //返回协程
            if (!isActive) return@launch
            println("打印${it}")
            //Thread是阻塞的，delay是挂起函数，非阻塞的
            Thread.sleep(500)
        }
    }

    //定时延迟2秒钟
    delay(2000)

    //取消协程之前状态
    println("取消协程之前状态:${job.isActive}")

    //取消协程
    job.cancel()

    //取消协程之后状态
    println("取消协程之后状态:${job.isActive}")

}